package org.unisinos.gc.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.unisinos.gc.dao.ArtigoDAO;
import org.unisinos.gc.dao.AutorDAO;
import org.unisinos.gc.dao.CoautorDAO;
import org.unisinos.gc.dao.SubAreaDAO;
import org.unisinos.gc.form.ArtigoForm;
import org.unisinos.gc.vo.Artigo;
import org.unisinos.gc.vo.Usuario;

public class GetArtigoDetailAction extends Action {
	
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		super.execute(mapping, form, request, response);

		String codigo = (String)request.getParameter("codigo");
		
		ArtigoForm artigoForm = (ArtigoForm)form;
		if (StringUtils.isNotEmpty(codigo)) {
			int codArtigo = Integer.parseInt(codigo);
			Artigo artigo = ArtigoDAO.getArtigo(codArtigo);		
			artigoForm.parseArtigo(artigo);
			artigoForm.setCodCoautores(CoautorDAO.getCoautoresByArtigo(codArtigo));
			request.setAttribute("mode", "edit");
		}else {
			artigoForm.clear();
			request.setAttribute("mode", "new");
		}
		
		Usuario user = (Usuario) request.getSession().getAttribute("usuarioLogado");
		artigoForm.setAutores(AutorDAO.getAutorListIgnoring(user.getAutor()));
		request.setAttribute("subAreaList", SubAreaDAO.getSubAreaListOrdered(user.getCongresso()));
		return mapping.findForward("success");
	}

}
